tarは、アーカイブファイルを作るためのコマンドです。
アーカイブを作る為の cf オプション
アーカイブファイルは-cfオプションの指定で作れます。それぞれ以下の意味があります。
-c新たにアーカイブファイルを作ります-fファイル名は...です。
-fは値を取るオプションで、これに渡したファイル名でアーカイブファイルが作られます。ファイル名には.tarという拡張子を付けることが一般的です。
以下は作成例です。
tar -cf document.tar document最後にアーカイブに含めたいディレクトリやファイルを続けます。これは複数指定でき、その場合はdocument html foo.ymlのように渡します。
アーカイブの中身を確認する為の tf オプション
上記セクションで作成したdocument.tarにちゃんと特定のファイルが含まれてるか確認したい場合は、-tfを使います。さらに-vを追加するとlsの結果ような形で一覧できます。
-tアーカイブファイルを一覧する-v詳しく表示
以下は確認例です。
tar -tf document.tar
# document/
# document/1.mdアーカイブに含めるファイルを絞る
「しまった、アレ含ませたくなかった!」なんて場合は--excludeオプションで含ませたくないディレクトリやファイルのパターンを渡します。
tar -f document.tar --exclude document/1.md
tar -tf document.tar
# document/複数のパターンがある場合は、その数だけ--excludeを指定する必要があります。
tar -cf archive.tar --exclude .git/ --exclude .DS_Store .
tar tf archive.tar
# .git/ と .DS_Store を除いた現在のディレクトリ以下の
# すべてのディレクトリとファイルアーカイブにファイルを追加する rf オプション
「しまった、アレ指定し忘れた!」なんて場合は-rfで後から追加できます。
-rアーカイブに指定ディレクトリやファイルを追加
以下は追加例です。
mkdir html
touch html/1.html
tar -rf document.tar html
tar -tf document.tar
# document/
# document/1.md
# html/
# html/1.htmlちなみに作り直しても大丈夫です。
圧縮アーカイブファイルを czf, cjf オプション
tarはgzipとbzip2による圧縮を行えます。これらを使ったアーカイブファイルの拡張子は一般的にそれぞれtar.gz、tar.bz2になります。
オプションに出てきたzjはそれぞれ以下のような意味です。
-zgzipで圧縮する-jbzip2で圧縮する
以下例です。
# gzip で
tar czf document.tar.gz document
# bzip2 で
tar cjf document.tar.bz2 document違いはbzip2の方がアーカイブファイルサイズを小さくできますが、圧縮時間も倍以上掛かるようです。
アーカイブを展開する為の xf オプション
上記セクションで作成したdocument.tarに展開したい場合は、-xfを使います。
-xアーカイブファイルからファイルを取り出す
tar -xf document.tar後にアーカイブ内のあるファイルへのファイルパスを指定することで、それだけを取り出す事もできます。
tar -xf document.tar document/1.md
find document
# document
# document/1.md取り出すのでは無く中身だけ見る
-xOfとして渡すことで、取り出すさずその中身を見れます。
tar -xOf document.tar document/1.md
# 1.md の中身オプションについて
tarコマンドでは最初の短いオプション(cやfなど)の塊に限って-を省略できます。つまり-cfや-tfの代わりにcf、tfと使うことができます。
tar cf document.tar document
tar tf document.tar
tar xf document.tar document